﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using System.Net;

namespace MemoryDuosControl
{
    public class Empresa
    {
        public long CIF { get; set; }

        public String Nombre { get; set; }

        public String Responsable { get; set; }

        public long Telefono { get; set; }
    }

    public static class AccesoEmpresa
    {
        private static string address;
       // private List<Empresa> empresas;


      

        public static EstadoPeticion AñadirEmpresa(Empresa empresa)
        {
            address = Conexion.UrlPruebas + "empresas.php?accion=registrar";

            String text;
            String json = JsonConvert.SerializeObject(empresa);

            using (var cliente = new CookieAwareWebClient())
            {
                text = cliente.UploadString(address, "POST", json);

            }
            var estado = JsonConvert.DeserializeObject<EstadoPeticion>(text);
            if (estado.Estado == false)
            {
                throw new Exception("Error al  eliminar la empresa");
            }
            return estado;
        }
        public static EstadoPeticion ModificarEmpresa(Empresa empresa)
        {
            address = Conexion.UrlPruebas + "empresas.php?accion=modificar";

            String text;
            String json = JsonConvert.SerializeObject(empresa);

            using (var cliente = new CookieAwareWebClient())
            {
                text = cliente.UploadString(address, "POST", json);

            }
            var estado = JsonConvert.DeserializeObject<EstadoPeticion>(text);
            if (estado.Estado == false)
            {
                throw new Exception("Error al  modificar la empresa");
            }
            return estado;
        }

        public static EstadoPeticion EliminarEmpresa(long CIF)
        {
            address = Conexion.UrlPruebas + String.Format("empresas.php?eliminar={0}", CIF);
            String text;
            
            using (var cliente = new CookieAwareWebClient())
            {
                text = cliente.UploadString(address, "GET");
            }
            var estado = JsonConvert.DeserializeObject<EstadoPeticion>(text);
            if (estado.Estado == false)
            {
                throw new Exception("Error al  eliminar la empresa");
            }
            return estado;
        }

        public static List<Empresa> ObtenerEmpresas()
        {
            List<Empresa> empresas = new List<Empresa>();
            address = Conexion.UrlPruebas + "empresas.php";
            String text;

            using (var webClient = new WebClient())
            {
                text = webClient.DownloadString(address);
            }
            try
            {
                return JsonConvert.DeserializeObject<List<Empresa>>(text);
            }
            catch (JsonReaderException exc)
            {
                throw new Exception("Hubo un error al obtener las empresas: " + text, exc);
            }
        }
    }
}
